#ifndef _SHELL_H_
#define _SHELL_H_

int shell(int argc, char* argv[]);

//maxima longitud del comando
#define COM_LEN 200
//maxima longitud del nombre del comando
#define NAME_LEN 40
//cantidad de comandos disponibles
#define COM_N 24
//cantidad de comandos a guardar
#define MAX_COM_INDEX 10

//codigos de error
#define COM_EMPTY 100
#define TOO_MANY_ARGS 101
#define TOO_FEW_ARGS 102
#define UNKNOWN 103
#define ARG_TOO_LONG 104
#define ERR_IN_ARG 105

//cantidad maxima de argumentos y longitud maxima de cada uno
#define MAX_ARGS 4
#define MAX_ARG_LEN 100

//estructura que guarda el comando a ejecutar
typedef struct commandCDT{
	char name[NAME_LEN];
	int cant_arguments;
	char arguments[MAX_ARGS][MAX_ARG_LEN];
	int (*function)(int argc, char ** argv);
	char backgroundFlag;
	char priority;
	char isComm;
}str;

typedef struct commandCDT * command_t;

#endif
